<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libspotify: Error Handling</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">libspotify
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Error Handling</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga83154178d3a32668658734d2facfa22b"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#ga83154178d3a32668658734d2facfa22b">sp_error</a></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gafd27986ce4cd9eeaeca8adda83c9eb6b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a> { <br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba16cb277dc84328e4b2c0cf6d5a0c0b8d">SP_ERROR_OK</a> =  0, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba17c588fa9648e3649185e595bdb88d6f">SP_ERROR_BAD_API_VERSION</a> =  1, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6bac8c438bd52975d14edf23d040e93d114">SP_ERROR_API_INITIALIZATION_FAILED</a> =  2, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba7b94fe2b53f58d91d4c3cda7bb706ff3">SP_ERROR_TRACK_NOT_PLAYABLE</a> =  3, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba2bad808a467ee4418adaa40f4844d059">SP_ERROR_BAD_APPLICATION_KEY</a> =  5, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba41052a4a158fa18bb1b8bfdd8c37f7dc">SP_ERROR_BAD_USERNAME_OR_PASSWORD</a> =  6, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba822f4031a82ab428cd04f2ecdc0e757f">SP_ERROR_USER_BANNED</a> =  7, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba9d11d66176b6ae95bf00486e9e39866b">SP_ERROR_UNABLE_TO_CONTACT_SERVER</a> =  8, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba995344026c012b3f59dc73e12c28b1ba">SP_ERROR_CLIENT_TOO_OLD</a> =  9, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba3f68775a5c001bd1de26afdf5ea4e09d">SP_ERROR_OTHER_PERMANENT</a> =  10, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baf3597d4af35adb4fc0d0793ea26f77b4">SP_ERROR_BAD_USER_AGENT</a> =  11, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6babb1116e69e1d651f9f175dbc8bb5fa32">SP_ERROR_MISSING_CALLBACK</a> =  12, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6bac9f65a7270391d35342ca9e6c01d519d">SP_ERROR_INVALID_INDATA</a> =  13, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba44b3f132578cbf9a43b5c048efcf63a2">SP_ERROR_INDEX_OUT_OF_RANGE</a> =  14, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba96c08adfcda17005c63142cd4e4cd9bb">SP_ERROR_USER_NEEDS_PREMIUM</a> =  15, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baf139c18351a543862bd9393ccebc5f91">SP_ERROR_OTHER_TRANSIENT</a> =  16, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba17f54c30d01baedc24547e62ed417cdd">SP_ERROR_IS_LOADING</a> =  17, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba71307cc7b8460042603f3f322d1096f4">SP_ERROR_NO_STREAM_AVAILABLE</a> =  18, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baaddac1f3b82e905711ab9ffe5b4b0329">SP_ERROR_PERMISSION_DENIED</a> =  19, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baa4bdf4298c9653549464d21ee528c881">SP_ERROR_INBOX_IS_FULL</a> =  20, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba3b8851ee3ba2bd7ad1fe377d94ac38c0">SP_ERROR_NO_CACHE</a> =  21, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baf8ade144869c958de534ecec9f9a36a9">SP_ERROR_NO_SUCH_USER</a> =  22, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba9ad34b997313d790f142f24e77e78e2d">SP_ERROR_NO_CREDENTIALS</a> =  23, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba8fda4dd3ee6ac931337a871fbee02978">SP_ERROR_NETWORK_DISABLED</a> =  24, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba846d94ada9e8db0c2bd5153f5801afa2">SP_ERROR_INVALID_DEVICE_ID</a> =  25, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6badb3af1736912156cbe0b1e39eaeee1c8">SP_ERROR_CANT_OPEN_TRACE_FILE</a> =  26, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba46c3b6173bb5b09445164402ac5ed81f">SP_ERROR_APPLICATION_BANNED</a> =  27, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba32fd1f63fd4dc7ec50bd11791f02953f">SP_ERROR_OFFLINE_TOO_MANY_TRACKS</a> =  31, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6bae6b9d9b013f1243548e4fbcf961559ff">SP_ERROR_OFFLINE_DISK_CACHE</a> =  32, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba7e16a1962fd4de081d73dc4a4e32eb04">SP_ERROR_OFFLINE_EXPIRED</a> =  33, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6bae102b46f4fae3b7b6b34e21ea80d656f">SP_ERROR_OFFLINE_NOT_ALLOWED</a> =  34, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba2c87afb46df21783f172a06b2c25d8f9">SP_ERROR_OFFLINE_LICENSE_LOST</a> =  35, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba9149b343017c0dea431839c8b4d9198c">SP_ERROR_OFFLINE_LICENSE_ERROR</a> =  36
, <br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6baf588c0f7a2d8d11acea28ac2a4de43c4">SP_ERROR_LASTFM_AUTH_ERROR</a> =  39, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba7f8be4d478e51d2b205157c7c538a3e5">SP_ERROR_INVALID_ARGUMENT</a> =  40, 
<br/>
&#160;&#160;<a class="el" href="group__error.html#ggafd27986ce4cd9eeaeca8adda83c9eb6ba73d533e0f25f4ba4cecd6d2e2502b80b">SP_ERROR_SYSTEM_FAILURE</a> =  41
<br/>
 }</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga983dee341d3c2008830513b7cffe7bf3"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__error.html#ga983dee341d3c2008830513b7cffe7bf3">sp_error_message</a> (<a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a> error)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>All functions in libspotify use the same set of error codes. Most of them return an error code, and let the result of the operation be stored in an out-parameter. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga83154178d3a32668658734d2facfa22b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a>  <a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Error codes returned by various functions </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="gafd27986ce4cd9eeaeca8adda83c9eb6b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Error codes returned by various functions </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba16cb277dc84328e4b2c0cf6d5a0c0b8d"></a>SP_ERROR_OK</em>&nbsp;</td><td>
<p>No errors encountered. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba17c588fa9648e3649185e595bdb88d6f"></a>SP_ERROR_BAD_API_VERSION</em>&nbsp;</td><td>
<p>The library version targeted does not match the one you claim you support. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6bac8c438bd52975d14edf23d040e93d114"></a>SP_ERROR_API_INITIALIZATION_FAILED</em>&nbsp;</td><td>
<p>Initialization of library failed - are cache locations etc. valid? </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba7b94fe2b53f58d91d4c3cda7bb706ff3"></a>SP_ERROR_TRACK_NOT_PLAYABLE</em>&nbsp;</td><td>
<p>The track specified for playing cannot be played. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba2bad808a467ee4418adaa40f4844d059"></a>SP_ERROR_BAD_APPLICATION_KEY</em>&nbsp;</td><td>
<p>The application key is invalid. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba41052a4a158fa18bb1b8bfdd8c37f7dc"></a>SP_ERROR_BAD_USERNAME_OR_PASSWORD</em>&nbsp;</td><td>
<p>Login failed because of bad username and/or password. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba822f4031a82ab428cd04f2ecdc0e757f"></a>SP_ERROR_USER_BANNED</em>&nbsp;</td><td>
<p>The specified username is banned. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba9d11d66176b6ae95bf00486e9e39866b"></a>SP_ERROR_UNABLE_TO_CONTACT_SERVER</em>&nbsp;</td><td>
<p>Cannot connect to the Spotify backend system. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba995344026c012b3f59dc73e12c28b1ba"></a>SP_ERROR_CLIENT_TOO_OLD</em>&nbsp;</td><td>
<p>Client is too old, library will need to be updated. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba3f68775a5c001bd1de26afdf5ea4e09d"></a>SP_ERROR_OTHER_PERMANENT</em>&nbsp;</td><td>
<p>Some other error occurred, and it is permanent (e.g. trying to relogin will not help) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baf3597d4af35adb4fc0d0793ea26f77b4"></a>SP_ERROR_BAD_USER_AGENT</em>&nbsp;</td><td>
<p>The user agent string is invalid or too long. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6babb1116e69e1d651f9f175dbc8bb5fa32"></a>SP_ERROR_MISSING_CALLBACK</em>&nbsp;</td><td>
<p>No valid callback registered to handle events. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6bac9f65a7270391d35342ca9e6c01d519d"></a>SP_ERROR_INVALID_INDATA</em>&nbsp;</td><td>
<p>Input data was either missing or invalid. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba44b3f132578cbf9a43b5c048efcf63a2"></a>SP_ERROR_INDEX_OUT_OF_RANGE</em>&nbsp;</td><td>
<p>Index out of range. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba96c08adfcda17005c63142cd4e4cd9bb"></a>SP_ERROR_USER_NEEDS_PREMIUM</em>&nbsp;</td><td>
<p>The specified user needs a premium account. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baf139c18351a543862bd9393ccebc5f91"></a>SP_ERROR_OTHER_TRANSIENT</em>&nbsp;</td><td>
<p>A transient error occurred. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba17f54c30d01baedc24547e62ed417cdd"></a>SP_ERROR_IS_LOADING</em>&nbsp;</td><td>
<p>The resource is currently loading. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba71307cc7b8460042603f3f322d1096f4"></a>SP_ERROR_NO_STREAM_AVAILABLE</em>&nbsp;</td><td>
<p>Could not find any suitable stream to play. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baaddac1f3b82e905711ab9ffe5b4b0329"></a>SP_ERROR_PERMISSION_DENIED</em>&nbsp;</td><td>
<p>Requested operation is not allowed. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baa4bdf4298c9653549464d21ee528c881"></a>SP_ERROR_INBOX_IS_FULL</em>&nbsp;</td><td>
<p>Target inbox is full. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba3b8851ee3ba2bd7ad1fe377d94ac38c0"></a>SP_ERROR_NO_CACHE</em>&nbsp;</td><td>
<p>Cache is not enabled. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baf8ade144869c958de534ecec9f9a36a9"></a>SP_ERROR_NO_SUCH_USER</em>&nbsp;</td><td>
<p>Requested user does not exist. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba9ad34b997313d790f142f24e77e78e2d"></a>SP_ERROR_NO_CREDENTIALS</em>&nbsp;</td><td>
<p>No credentials are stored. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba8fda4dd3ee6ac931337a871fbee02978"></a>SP_ERROR_NETWORK_DISABLED</em>&nbsp;</td><td>
<p>Network disabled. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba846d94ada9e8db0c2bd5153f5801afa2"></a>SP_ERROR_INVALID_DEVICE_ID</em>&nbsp;</td><td>
<p>Invalid device ID. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6badb3af1736912156cbe0b1e39eaeee1c8"></a>SP_ERROR_CANT_OPEN_TRACE_FILE</em>&nbsp;</td><td>
<p>Unable to open trace file. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba46c3b6173bb5b09445164402ac5ed81f"></a>SP_ERROR_APPLICATION_BANNED</em>&nbsp;</td><td>
<p>This application is no longer allowed to use the Spotify service. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba32fd1f63fd4dc7ec50bd11791f02953f"></a>SP_ERROR_OFFLINE_TOO_MANY_TRACKS</em>&nbsp;</td><td>
<p>Reached the device limit for number of tracks to download. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6bae6b9d9b013f1243548e4fbcf961559ff"></a>SP_ERROR_OFFLINE_DISK_CACHE</em>&nbsp;</td><td>
<p>Disk cache is full so no more tracks can be downloaded to offline mode. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba7e16a1962fd4de081d73dc4a4e32eb04"></a>SP_ERROR_OFFLINE_EXPIRED</em>&nbsp;</td><td>
<p>Offline key has expired, the user needs to go online again. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6bae102b46f4fae3b7b6b34e21ea80d656f"></a>SP_ERROR_OFFLINE_NOT_ALLOWED</em>&nbsp;</td><td>
<p>This user is not allowed to use offline mode. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba2c87afb46df21783f172a06b2c25d8f9"></a>SP_ERROR_OFFLINE_LICENSE_LOST</em>&nbsp;</td><td>
<p>The license for this device has been lost. Most likely because the user used offline on three other device. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba9149b343017c0dea431839c8b4d9198c"></a>SP_ERROR_OFFLINE_LICENSE_ERROR</em>&nbsp;</td><td>
<p>The Spotify license server does not respond correctly. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6baf588c0f7a2d8d11acea28ac2a4de43c4"></a>SP_ERROR_LASTFM_AUTH_ERROR</em>&nbsp;</td><td>
<p>A LastFM scrobble authentication error has occurred. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba7f8be4d478e51d2b205157c7c538a3e5"></a>SP_ERROR_INVALID_ARGUMENT</em>&nbsp;</td><td>
<p>An invalid argument was specified. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggafd27986ce4cd9eeaeca8adda83c9eb6ba73d533e0f25f4ba4cecd6d2e2502b80b"></a>SP_ERROR_SYSTEM_FAILURE</em>&nbsp;</td><td>
<p>An operating system error. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga983dee341d3c2008830513b7cffe7bf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__error.html#ga983dee341d3c2008830513b7cffe7bf3">sp_error_message</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a>&#160;</td>
          <td class="paramname"><em>error</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Convert a numeric libspotify error code to a text string. The error message is in English. This function is useful for logging purposes.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">error</td><td>The error code to lookup </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a30">browse.c</a>, <a class="el" href="jukebox_8c-example.html#a17">jukebox.c</a>, and <a class="el" href="search_8c-example.html#a14">search.c</a>.</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
Generated on Wed May 23 2012 11:04:07.<br>
Copyright &copy; 2006&ndash;2012 Spotify Ltd</small></address>
</body>
</html>
